﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;

namespace TMS
{
    public class Aplicacion
    {
        #region ATRIBUTOS

        private long _Id;
        private string _Nombre;
        private string _Descripcion;
        private List<Modulo> _LstModulos;

        #endregion

        #region PROPERTIES

        public long Id
        {
            get { return _Id; }
            set { _Id = value; }
        }
        public string Nombre
        {
            get { return _Nombre; }
            set { _Nombre = value; }
        }
        public string Descripcion
        {
            get { return _Descripcion; }
            set { _Descripcion = value; }
        }
        public List<Modulo> LstModulos
        {
            get { return _LstModulos; }
            set { _LstModulos = value; }
        }

        #endregion

        #region CONSTRUCTORES

        public Aplicacion()
        { }

        public Aplicacion(long pId, string pNombre, string pDescripcion)
        {
            _Id = pId;
            _Nombre = pNombre;
            _Descripcion = pDescripcion;

        }

        #endregion

        #region METODOS

        public void newAplicacion()
        {
            AplicacionXMLManager.getInstancia().addAplicacion(this);
        }
        public void updateAplicacion()
        {
            AplicacionXMLManager.getInstancia().updateAplicacion(this);

        }
        public static void removeAplicacion(long pAppId)
        {
            AplicacionXMLManager.getInstancia().removeAplicacion(pAppId);
        }
        public static List<Aplicacion> listApps()
        {
            return AplicacionXMLManager.getInstancia().getAppList();
        }
        public static Aplicacion getAppById(long pId)
        {
            return AplicacionXMLManager.getInstancia().getAplicacionById(pId);
        }
        public static Aplicacion getAppByName(string pName)
        {
            return AplicacionXMLManager.getInstancia().getAplicacionByName(pName);
        }
        public static long getUltimoId()
        {
            return AplicacionXMLManager.getInstancia().getUltimoId();
        }
        public static bool existeAplicacion(string pApp)
        {
            return AplicacionXMLManager.getInstancia().existeAplicacion(pApp);
        }
        public override string ToString()
        {
            return "Nombre: " + _Nombre + ", Descripcion: " + _Descripcion;
        }

        #endregion
    }
}